package com.wang.service;

import com.alipay.api.AlipayApiException;
import com.wang.enums.ProductOrderPayTypeEnum;
import com.wang.model.OrderMessage;
import com.wang.request.ConfirmOrderRequest;
import com.wang.request.RepayOrderRequest;
import com.wang.util.JsonData;
import org.springframework.transaction.annotation.Transactional;

import java.util.Map;

public interface ProductOrderService {
    /**
     * 提交订单
     * @param confirmOrderRequest
     * @return
     */
    JsonData confirmOrder(ConfirmOrderRequest confirmOrderRequest) throws AlipayApiException;

    /**
     * 查询订单支付状态
     * @param outTradeNo
     * @return
     */
    String queryProductOrderState(String outTradeNo);

    /**
     * 定时关单
     * @param orderMessage
     * @return
     */
    boolean closeOrder(OrderMessage orderMessage);

    /**
     * 处理订单回调消息
     * @param productOrderPayTypeEnum
     * @param paramsMap
     * @return
     */
    JsonData handlerOrderCallbackMsg(ProductOrderPayTypeEnum productOrderPayTypeEnum, Map<String, String> paramsMap);

    /**
     * 分页查询订单列表
     * @param page
     * @param size
     * @param state
     * @return
     */
    Map<String, Object> page(Integer page, Integer size, String state);

    /**
     * 未支付订单再次支付
     * @param repayOrderRequest
     * @return
     */
    JsonData repay(RepayOrderRequest repayOrderRequest) throws AlipayApiException;


}
